package com.xique.door.mapper;


import com.xique.door.bean.domain.ParkCar;
import com.xique.door.bean.domain.ParkCarMngtype;
import com.xique.door.bean.domain.User;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * 车辆Mapper接口
 * 
 * @author ww
 * @date 2019-10-26
 */
@Repository
public interface ParkCarMapper
{
    /**
     * 查询车辆
     * 
     * @param id 车辆ID
     * @return 车辆
     */
    public ParkCar selectParkCarById(Long id);

    /**
     * 查询车辆-根据车牌号
     *
     * @param plate 车牌号
     * @return 车辆
     */
    public ParkCar selectParkCarByPlate(String plate);

    /**
     * 查询车辆列表
     * 
     * @param parkCar 车辆
     * @return 车辆集合
     */
    public List<ParkCar> selectParkCarList(ParkCar parkCar);

    /**
     * 新增车辆
     * 
     * @param parkCar 车辆
     * @return 结果
     */

    public int insertParkCar(ParkCar parkCar);

    /**
     * 修改车辆
     * 
     * @param parkCar 车辆
     * @return 结果
     */
    public int updateParkCar(ParkCar parkCar);

    /**
     * 删除车辆
     * 
     * @param id 车辆ID
     * @return 结果
     */
    public int deleteParkCarById(Long id);

    /**
     * 批量删除车辆
     * 
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    public int deleteParkCarByIds(String[] ids);

	public int updateParkCarSpaces(ParkCar parkCar);

//	public void insertParkUser(ParkUser parkUser);

    /**
     * 插入车主（用户）
     * @param user
     */
	public void insertParkUser(User user);

	public ParkCar selectParkUserVisitorAuth(ParkCar parkCar);

    /**
     * 某车场下车牌号唯一性校验
     * @param parkCar
     * @return
     */
	public List<ParkCar> checkParkPlateExist(ParkCar parkCar);

    /**
     * 批量写入车辆信息，有则更新，无则添加
     * @param parkCarList
     * @return
     */
	int batchInsetParkCar(List<ParkCar> parkCarList);


    public List<ParkCar> batchSelectParkCar(List<String> plates);

}
